/**
 * 
 */
package com.fashop.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.fashop.bean.Result;
import com.fashop.bean.usuario.ListadoUsuarioAppOut;
import com.fashop.bean.usuario.UsuarioAppIn;
import com.fashop.bean.usuario.UsuarioAppOut;
import com.fashop.dao.UsuarioAppDao;
import com.fashop.enumeration.StateTransactionEnum;
import com.fashop.jpa.UsuarioApp;
import com.fashop.mapper.GenericMapper;
import com.fashop.service.UsuarioAppService;

/**
 * @author Alan Dávila
 * e-mail ustargab@gmail.com
 * date 12/01/2014 20:40:40
 */
@Service("usuarioAppServiceImpl")
public class UsuarioAppServiceImpl implements UsuarioAppService {

	@Resource(name = "usuarioAppDaoImpl")
	private UsuarioAppDao usuarioAppDaoImpl;
	@Resource(name = "usuarioAppMapperIn")
	private GenericMapper<UsuarioAppIn, UsuarioApp> usuarioAppMapperIn;
	@Resource(name = "usuarioAppMapperOut")
	private GenericMapper<UsuarioApp, UsuarioAppOut> usuarioAppMapperOut;
	@Resource(name="listadoUsuarioAppMapperOut")
	private GenericMapper<List<UsuarioApp>,List<UsuarioAppOut>> listadoUsuario;
	
	
	/* (non-Javadoc)
	 * @see com.fashop.service.UsuarioAppService#nuevo(com.fashop.bean.usuario.UsuarioAppIn)
	 */
	public UsuarioAppOut nuevo(UsuarioAppIn usuario) {
		UsuarioApp usuarioApp = usuarioAppMapperIn.map(usuario);
		UsuarioAppOut salida = new UsuarioAppOut();
		UsuarioApp nuevoUsuario = null;
		Result result = new Result(StateTransactionEnum.NEW.toString());
		result.setEstado(StateTransactionEnum.ERROR.toString());
		if (usuarioApp != null) {
			nuevoUsuario = usuarioAppDaoImpl.nuevo(usuarioApp);
			if (nuevoUsuario != null) {
				salida = usuarioAppMapperOut.map(nuevoUsuario);
				result.setEstado(StateTransactionEnum.NEW.toString());
			}
		}
		salida.setResult(result);
		return salida;
	}
	
	public ListadoUsuarioAppOut getAllUser() {
		List<UsuarioApp> allUser = usuarioAppDaoImpl.getAllUser();
		ListadoUsuarioAppOut listAllUserRespuesta = new ListadoUsuarioAppOut();
		List<UsuarioAppOut>	 listUserOut	 = listadoUsuario.map(allUser);
		Result result	= new Result(StateTransactionEnum.GET.toString());
		if(listUserOut==null){
			result.setEstado(StateTransactionEnum.ERROR.toString());
		}
		listAllUserRespuesta.setListado(listUserOut);
		listAllUserRespuesta.setResult(result);
		return listAllUserRespuesta;
	}

	/* (non-Javadoc)
	 * @see com.fashop.service.UsuarioAppService#detalle(com.fashop.bean.usuario.UsuarioAppIn)
	 */
	public UsuarioAppOut detalle(UsuarioAppIn usuario) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see com.fashop.service.UsuarioAppService#listado()
	 */
	public ListadoUsuarioAppOut listado() {
		// TODO Auto-generated method stub
		return null;
	}

	

}
